package com.csi.juegoweb.dao.impl;

import java.sql.Timestamp;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.csi.juegoweb.bean.JugadorBean;
import com.csi.juegoweb.core.domain.Usuario;
import com.csi.juegoweb.dao.JugadorDAO;
import com.csi.juegoweb.domain.Jugador;

@Repository("jugadorDao")
public class JugadorDAOJdbc implements JugadorDAO{
	
	@Autowired
	private JdbcTemplate jdbcTemplate;
	
	@Override
	public List<Jugador> getJugadores() {
		// TODO Auto-generated method stub

		return jdbcTemplate.query("select " +
				"Co_jugador cojugador," +
				"Co_jugpadre cojugpadre," +
				"No_nombre nonombre," +
				"No_apepat noapepat," +
				"No_apemat noapemat," +
				"No_emal noemal," +
				"Fl_estado flestado," +
				"Fl_confirm flconfirm," +
				"Fl_fechaconfir flfechaconfir," +
				"Co_Nivel conivel from jugador", new BeanPropertyRowMapper<Jugador>(Jugador.class));
	}

	@Override
	public void eliminar(Integer cojugador) {
		// TODO Auto-generated method stub
		jdbcTemplate.update("delete from jugador where co_jugador = ?",cojugador);
	}

	@Override
	public void crear(Jugador jugador) {
		
		jdbcTemplate.update("insert into jugador ("+
				"Co_jugpadre," +
				"No_nombre," +
				"No_apepat," +
				"No_apemat," +
				"No_emal," +
				"Fl_estado," +
				"Fl_confirm," +
				"Fl_fechaconfir," +
				"Co_Nivel) values (?, ?, ?, ?, ?, ?, ?, ?, ?)",
				jugador.getCojugpadre(),
				jugador.getNonombre(),
				jugador.getNoapepat(),
				jugador.getNoapemat(),
				jugador.getNoemal(),
				jugador.getFlestado(),
				jugador.getFlconfirm(),
				jugador.getFlfechaconfir(),
				jugador.getConivel());
		
	}
	
	@Override
	public List<JugadorBean> HistorialDonaciones(String idJugador) {
		
		List<JugadorBean> list= null;
		
		try {
			
			StringBuilder sql=new StringBuilder();
			
			sql.append(" SELECT d.Co_donacion,d.Co_jugador as coJugadorOrigen,d.Co_jugdes as coJugadorDestino,(concat(j.No_nombre,j.No_apepat)) as noNombreJugador, ");
			sql.append(" d.Fl_confirn as flConfirmacion, d.fc_confirn as fcFechaConfirmacion, d.Nu_monto as montoDonado FROM donacion ");
			sql.append(" d inner join jugador j on d.Co_jugdes=j.Co_jugador where d.Co_jugador="+idJugador);
			
			list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<JugadorBean>(JugadorBean.class));
						
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	@Override
	public List<JugadorBean> HistorialDonantes(String idJugador) {
		
		List<JugadorBean> list= null;
		
		try {
			
			StringBuilder sql=new StringBuilder();
			
			sql.append(" SELECT d.Co_donacion,d.Co_jugador as coJugadorOrigen,d.Co_jugdes as coJugadorDestino,(concat(j.No_nombre,j.No_apepat)) as noNombreJugador, ");
			sql.append(" d.Fl_confirn as flConfirmacion, d.fc_confirn as fcFechaConfirmacion, d.Nu_monto as montoDonado FROM donacion ");
			sql.append(" d inner join jugador j on d.Co_jugador=j.Co_jugador where d.Co_jugdes="+idJugador);
			
			list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<JugadorBean>(JugadorBean.class));
						
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	
}
